package com.yixing.tech.common.autoline.task;

import lombok.*;

import java.io.Serializable;

public class WCSConfig {

    private volatile static Config config;

    private static void initConfig() {
        if(config == null) {
            synchronized (WCSConfig.class) {
                if(config == null) {
                    config = new Config();
                }
            }
        }
    }

    public static void setIp(String ip) {
        initConfig();
        config.setIp(ip);
    }

    public static void setPort(Integer port) {
        initConfig();
        config.setPort(port);
    }

    public static void setConfig(Config config) {
        initConfig();
        WCSConfig.config.setIp(config.ip);
        WCSConfig.config.setPort(config.port);
    }

    public static void setConfig(String ip, Integer port) {
        initConfig();
        config.setIp(ip);
        config.setPort(port);
    }

    public static Config getInstance() {
        return config;
    }

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @ToString
    public static final class Config implements Serializable {
        private String ip;
        private Integer port;
    }

}
